模块是单例模式

## 介绍
- 系统中被唯一使用
- 一个类只有一个实例

## 代码演示

```js 

class SingleObject {
    login(){
        console.log('login……');
    }
}

SingleObject.getInstance = (function () {
    let instance;
    return function(){
        if(!instance) instance = new SingleObject;
        return instance;
    }
    
})()


let obj1 = SingleObject.getInstance();
obj1.login();

let obj2 = SingleObject.getInstance();
obj2.login();

console.log(obj1 === obj2);
```
## 场景

jquery 只有一个$
登录框 
购物车
vuex 和redux 中的store





## 设计原则验证
- 符合单一职责原则，只实例化唯一的对象
- 没法具体开放封闭原则，但是绝对不违反开放封闭原则